iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
佛心分享-IT 人自學之術

靠近 ASP .NET Core 一點點系列 第 6

Day 6 從零開始:如何自建 NuGet 套件庫並應用於專案

  • 分享至 

  • xImage
  •  

引言
昨天針對 Nuget 套件的種類、來源、管理做一個介紹,今天針對如何自建 Nuget 套件庫讓其專案使用做分享。

分享主軸

  • 了解自建 NuGet 套件庫方法
  • 自建 NuGet 套件庫可能產生的優點或缺點

創建步驟

Step 1 : 創建類別庫專案
例如創建一個類別庫 MyLibrary,做一個簡單數學運算類別功能,如下

namespace MyLibrary
{
    public class MathOperations
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

Step 2:設定專案檔 (添加必要的設定)
到專案檔內寫一些套件上的設定,如下 (套件版本比較重要)

<PropertyGroup>
    <Version>1.0.0</Version> <!-- 套件版本 -->
    <AssemblyVersion>1.0.0.0</AssemblyVersion> <!-- 組件版本 -->
    <FileVersion>1.0.0.0</FileVersion> <!-- 檔案版本 -->
</PropertyGroup>

注意:專案名稱會自動成為 NuGet 套件名稱,因此命名時需謹慎。

Step 3:生成 NuGet 套件
發佈套件,要發佈成 Nuget套件點選套件,如下圖
https://ithelp.ithome.com.tw/upload/images/20240919/20133954Phz0m7OHWk.png

發佈成功後就會在某個路徑,產出 .nupkg 檔案,可以從下圖中查看檔案產生在哪個路徑位置
https://ithelp.ithome.com.tw/upload/images/20240919/20133954x1UwiqA8bK.png

此時自己寫的功能套件已經發布完成。

Step 4:發佈 NuGet 套件
接下來得把發佈出來檔案上傳到 Nuget官網 ( https://www.nuget.org/ ) 或是使用 NuGet CLI 發佈套件

  1. 登入後,右上可以看到 Upload Package,點選後上傳剛剛發布出來的 .nupkg 檔案,且上傳後可以填寫對於套件的描述以及版本等等資訊。
    https://ithelp.ithome.com.tw/upload/images/20240919/20133954cbkKqsSTKO.png

上傳後就可以看到還在審核中,如下圖
https://ithelp.ithome.com.tw/upload/images/20240919/20133954rBXf0hbu1T.png

2.透過 CLI 發佈套件

dotnet nuget push 發布的套件名稱.nupkg --api-key YOUR_API_KEY --source https://api.nuget.org/v3/index.json

Step 5:在專案中引用自建的 NuGet 套件
此時在管理 NuGet 套件中就可以查詢到剛剛上傳的套件名稱,並在程式中引用它

using MyLibrary;

class Program
{
    static void Main(string[] args)
    {
        MathOperations math = new MathOperations();
        int result = math.Add(3, 4);
        Console.WriteLine($"3 + 4 = {result}");
    }
}

到這邊已經完成自建 Nuget套件作法。

Step 6:在專案中引用自建的 NuGet 套件庫,使其在管理 Nuget 套建那的來源看到

  • 建立一個 nuget.config 檔案範本,如下
  dotnet new nuget.config
  • 回到專案內加入項目,把此檔案加入到專案,如下圖
    https://ithelp.ithome.com.tw/upload/images/20240920/20133954t73eOO9XkN.png

然後到 nuget.config 內加入自訂的發布 Nuget 套件名稱與存放路徑位置,如下圖

https://ithelp.ithome.com.tw/upload/images/20240920/20133954Af1XM6rvX9.png

此時在管理 Nuget 套建那的來源就可以看到這些被加入設定的來源,如下圖
https://ithelp.ithome.com.tw/upload/images/20240920/201339540wQBzn1HZB.png

簡單統整今日重點

  • 了解如何自己建立 Nuget 套件
  • 了解 Nuget 套件的來源也可以自己增加、刪除,這對於專案開發合作上有極大不一樣的模式可以進行開發
  • 專案內套件參考有問題,可能是來源有問題,可以來此來源查看,是否吃到錯誤來源
  • 引用其他套件時,建議一定要去看 Dependencies說明,才可以更清楚知道此套件是否有支援現在專案版本

今日結語
自建套件有優缺點,像是之前公司就有做內部 NuGet 伺服器,對於團隊開發,搭建內部 NuGet 伺服器,方便管理和共享自建的套件,同時也避免某些相似系統在功能上的重工性。
但缺點也是有,像是初期搭建時間成本與維護成本,依賴性變高,套件更新壓力變大(一旦多個系統同時使用,就不太容易更新)等等。
總之個人覺得了解這些,是對於專案開發上有更多選擇,學習這些知識,其實優點是大於缺點的。

希望今天有幫助到大家,明天繼續努力! 謝謝。


上一篇
Day 5 專案中的Nuget套件 : 看似日常的套件庫也扮演非常重要地位
下一篇
Day 7 Kestrel : 到底是什麼 ? 與 ASP .NET Core 關係 ?
系列文
靠近 ASP .NET Core 一點點27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言